//
// Created by LM on 2025/5/18.
//

#ifndef APP_UART_DMA_H
#define APP_UART_DMA_H

#include <stdint.h>
#include "gd32f4xx_dma.h"


typedef struct {
    uint32_t uart_n;               // 串口号

    uint32_t tx_dma_stream;        // DMA流
    uint32_t tx_dma_channel;       // DMA通道

    uint32_t tx_mem_addr;          // 发送内存地址
    dma_subperipheral_enum tx_dma_peripheral;  // DMA外设

    uint32_t rx_dma_stream;        // DMA流
    uint32_t rx_dma_channel;       // DMA通道

    uint32_t rx_mem_addr;          // 发送内存地址
    dma_subperipheral_enum rx_dma_peripheral;  // DMA外设
} UART_DMA_CONFIG_T;

void uart_dma_init(void);

void uart_dma_tx_send_uart_x(uint32_t uart_x, uint8_t *data, uint16_t len);

void uart_dma_handle_rx(uint32_t uart_x);

#endif //APP_UART_DMA_H
